<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
  /**
   * 1. 实践中为了从视觉上区分构造函数和普通函数，习惯将构造函数的首字母大写。
   * 2. 使用 `new` 关键字调用函数的行为被称为实例化
   * 3. 实例化构造函数时没有参数时可以省略 `()`
   * 4. 构造函数的返回值即为新创建的对象
   * 5. 构造函数内部的 `return` 返回的值无效！
   */
  function Foo() { // 习惯将构造函数的首字母大写
    console.log('通过 new 也能调用函数...');
    return 100; // 构造函数内部的 `return` 返回的值无效！
  }
  // 实例化构造函数时没有参数时可以省略 `()`
  console.log(new Foo) // 返回了一个对象
  console.log(Foo()) // 返回了return
</script>
</body>
</html>